package fiuba.td.fabrica.model.entities;

import java.util.Observable;

import fiuba.td.fabrica.constants.GlobalConstants;
import fiuba.td.fabrica.model.vos.Posicion;
import fiuba.td.fabrica.model.vos.Tamanio;

/**
 * Objeto dentro de la fabrica que tiene un valor, como maquinas y cintas transportadoras 
 */
public abstract class ElementoFabrica extends Observable{

	private double costo;
	private Tamanio tamanio;
	private Posicion posicion;
	
	public ElementoFabrica(double costo) {
		super();
		this.costo = costo;
	}
	
	public double getCosto() {
		return costo;
	}

	public void setCosto(double costo) {
		this.costo = costo;
	}

	public Tamanio getTamanio() {
		return tamanio;
	}

	public void setTamanio(Tamanio tamanio) {
		this.tamanio = tamanio;
	}

	public Posicion getPosicion() {
		return posicion;
	}

	public void setPosicion(Posicion posicion) {
		this.posicion = posicion;
	}
	
	public abstract String getIcono ();
	
	public void habilitarEdicion() {
		setChanged();
		notifyObservers(GlobalConstants.PANTALLA_ACCIONES.HABILITAR_EDICION);
	}
	
	public void deshabilitarEdicion() {
		setChanged();
		notifyObservers(GlobalConstants.PANTALLA_ACCIONES.DESHABILITAR_EDICION);
	}
	
	public abstract String getDescripcion ();
}